将neovim打造成IDE

您所在的位置:网站首页 neovim 源码分析 将neovim打造成IDE

将neovim打造成IDE

2023-09-21 19:32| 来源: 网络整理| 查看: 265

概述

最近疫情封锁在家无事,汇总整理下自己使用的neovim插件,以及这些插件都具备哪些功能:

功能 插件 1. 代码视图:文件和目录树,标签视图,状态栏 vim-airline-themes,vim-airline,nerdtree,taglist.vim,tagbar, 1.1 代码视图/语法高亮: sheerun/vim-polyglot, kanagawa ,vim-colorschemes 1.2 代码视图/代码显示: Yggdroot/indentLine(对齐线),luochen1990/rainbow(嵌套括号高亮) 1.3 代码高亮:高亮多个关键词 inkarkat/vim-mark 2. 代码跳转: 2.1 代码跳转/基于标签跳转: jsfaint/gen_tags.vim, 2.2 代码跳转/跨文件跳转:历史文件,子目录文件 yegappan/mru,junegunn/fzf,junegunn/fzf.vim 2.3 代码跳转/页面内跳转:行间、列间 easymotion/vim-easymotion 2.4 代码跳转/窗口跳转: nvim内置,tmux内置 3. 代码阅读:(代码定义,代码引用等) neovim/nvim-lspconfig,jsfaint/gen_tags.vim 3.1 代码编辑/自动补全: 内置补全功能,neovim/nvim-lspconfig 3.2 代码编辑/语法检查: neovim/nvim-lspconfig 3.3 代码编辑/代码片段: hrsh7th/nvim-cmp,L3MON4D3/LuaSnip,rafamadriz/friendly-snippets 3.4 代码编辑/代码搜索: rking/ag.vim 插件介绍 Nerdtree 概述

【左边栏显示目录结构】

image

技巧 切换根目录:返回上级u;当前目录作为根目录C 更新显示:r 重命名文件:mm 显示隐藏文件:I 显示当前打开文件的位置::NERDTreeFind( 可以自定义快捷键 ) 开启和关闭窗口:NERDTreeToggle vim-airline 概述

【顶栏部分显示已打开的文件,可以进行切换】

image

配置

罗列部分airline配置

" 设置切换tab的快捷键 + 切换到第i个 tab nmap 1 AirlineSelectTab1 nmap 2 AirlineSelectTab2 nmap 3 AirlineSelectTab3 nmap 4 AirlineSelectTab4 nmap 5 AirlineSelectTab5 nmap 6 AirlineSelectTab6 nmap 7 AirlineSelectTab7 nmap 8 AirlineSelectTab8 nmap 9 AirlineSelectTab9 tagbar 概述

tagbar是一个taglist的替代品,比taglist更适合c++使用,函数能够按类区分,支持按类折叠显示等,显示结果清晰简洁。

【右边栏显示文中的tag】

image

mru、fzf 概述

插件组合后可以实现文件间的选择和跳转:

打开并搜索最近的的文件 搜索当前目录的文件 过滤文件行中内容

image

fzf在bash中的使用,最常用的就是获取历史输入命令:ctrl + r --> 输入字符进行搜索匹配 --> ctrl + j/k进行上下切换 --> Enter 选中

image

配置 cd ~/.config/nvim/plugged/fzf ./install 全过程Y

上面方式配置完成后,在bash中也能使用

vim-easymotion 概述

可以在当前文件中快速跳转,行间跳转和单词间跳转。

默认的快捷键:行间跳转+j/k; 单词间跳转+w 输入上面按键后每行或每个单词会出现个索引符号,直接按对应的按键即可跳转到对应位置

image

gen_tags.vim 概述

该插件可以自动生成tags,使用gtags替代cscope了,可以查看代码的定义和应用。该组件特点

支持的语言多:该组件配置插件支持分析的语言达154多种 属于静态分析,可能存在多种引用关系,后面的nvim-lspconfig是动态分析,需要编译生成引用关系,会更智能

image

配置

安装gtags(gun global)软件

进入~/.config/nvim/gtags/执行install 安装位置:~/bin/gtags,~/.bashrc 和 ~/.config/nvim/init.vim 参考

vim中使用gtags - whilewell - 博客园 (cnblogs.com)

nvim-marks 概述

可以高亮多个单词,方便阅读代码 image

nvim-lspconfig 概述

lspconfig将neovim内置的lsp api进行封装(这里指的是lsp client,lsp server需要单独安装),从而可以通过简单的配置即可使用lsp。需要使用该功能还涉及很多其它的组件,这里就不赘述了。

lspconfig支持哪些功能:

go-to-definition find-references hover completion:auto-completion和 snippets support,需要额外插件 rename format:未研究 refactor:未研究 功能演示 查看定义,引用,帮助

image

代码片段

代码片段基于friendly-snippets 插件实现,有需要可以进行自定义

输入特定字符串,会匹配到自动补全中的snippet类型 然后进行上下选择,或者进行模糊匹配输入选择 选中后 即回车键 然后在片段中按键, 实现不同位置内容的编辑

image

自动补全

nvim内置补全功能

preview

LSP实现补全功能

代码的补全是基于nvim-lspconfig 和 不同语言的lsp server实现的。

当前软件内部开启的有: clangd:C / pyright:Python / lua-language-server:lua,前面是lsp server后面是对应的语言,当打开c, pyhton和lua后就会自动在项目根目录(.git)打开lsp server。可以通过:LspInfo查看配置和运行状态

image

代码补全演示 image

代码诊断

python文件诊断功能

1. 通过']e'和'[e'实现诊断内容的上下跳转 2. 通过' + jq' 获取所有diagnosetics的列表 3. 通过' + jf' 打开diagnosetics内容

image

c文件诊断功能:增加错误的语法 image

重命名

下面演示了通过lsp将add_checksum替换成add_wsk,中间通过ag.vim和ag分别进行了搜索匹配,可以看到替换的过程非常的快捷

image

配置 pyhton语言 sudo npm i -g pyright c语言 安装bear,用来生成clangd依赖的配置文件'compile_commands.json' sudo apt-get install bear bear 后面跟编译命令即可 bear $make 安装clangd,直接使用二进制即可,自制的软件包中已经包含 参考

Home · neovim/nvim-lspconfig Wiki · GitHub | lsp wiki

nvim-autopairs 概述

自动补齐括号,是通过lua重写后的autopairs。会自动补齐括号 image

参考

Vim括号/引号自动补齐插件auto-pairs的安装和使用方法 | vim教程网 (vimjc.com)

vim-translator 概述

翻译软件,默认中文翻译

默认翻译引擎:['bing', 'haici', 'youdao'] 翻译快捷键: + w kanagawa 概述

vim 颜色主题,显示效果很不错 image

配置

针对tmux下colorscheme失效的问题需要如下配置: ~/.bashrc 中配置

alias tmux="TERM=screen-256color-bce tmux"

~/.tmux.conf 中配置

set -g default-terminal "xterm"

source ~/.bashrc后重启tmux即可生效

软件安装

环境要求:Ubuntu 18.04 server版本

1.软件包下载路径

mkdir -p ~/.config/ git clone https://gitee.com/whilewell/nvim.git ~/.config/nvim

注:部分软件已经内置到bin目录下,内置的软件有:

clangd node nvim lua-language-server

2.安装依赖软件

安装 clangd 依赖(clangd是c代码的lsp).

sudo apt-get install bear 1. 生成方法 bear $build_cmd 2. nvim在'compile_commands.json'对应的目录下打开文件,

安装gen_tags依赖

# 1. 会将global默然安装到~/bin/gtags; 安装pyhton的语法解析包pygments # 2. 并配置环境变量到~/.bashrc 和 ~/.config/nvim/init.vim cd ~/.config/nvim/gtags ./install

安装lsp依赖: 不同的语言需要安装不同的lsp server

npm i -g pyright

安装fzf

cd ~/.config/nvim/plugged/fzf ./install 全过程Y

3.配置后的.bashrc

# 配置后的.bashrc export PYTHONDONTWRITEBYTECODE=1 export PATH=~/.config/nvim/bin:$PATH export GTAGSCONF=/home/wsk/bin/gtags/data/gtags/gtags.conf export GTAGSLABEL=pygments alias nv='nvim' 使用技巧 查看绑定的快捷键:verbose imap 参考 learn-neovim-lua/comment.lua at main · nshen/learn-neovim-lua · GitHub | neovim配置替换成了lua方式 nvim0.5+从0单排]图文教程、nvim配置下载 在 neovim 中使用 Lua_lxyoucan的博客-CSDN博客_lua neovim 13_[nvim0.5+从0单排]_ 自定义代码段LuaSnip入门_哔哩哔哩_bilibili | 自定义代码段 Home · neovim/nvim-lspconfig Wiki · GitHub | lsp wiki Bytefluent | Vivify | vim 主题颜色在线调试

本文来自博客园,作者:whilewell,转载请注明原文链接:https://www.cnblogs.com/viiv/p/15729383.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3